﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using CRC.Incidencias.Dominio.Clases;
using CRC.Comun.Presentacion;

namespace CRC.Incidencias.Presentacion
{
    public partial class UsrIncidencia : Form, PropertyListener
    {
        protected LinkedList<IIncidenciasListener> incidenciasListeners = new LinkedList<IIncidenciasListener>();

        public UsrIncidencia()
        {
            InitializeComponent();
        }

        private void butKO_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        protected virtual void butOK_Click(object sender, EventArgs e)
        {
            //A redefinir en subclase
        }

        private void butEscogerConcepto_Click(object sender, EventArgs e)
        {
            SeleccionarConcepto seleccionarConcepto = new SeleccionarConcepto();
            seleccionarConcepto.addPropertyListener(this);
            seleccionarConcepto.StartPosition = FormStartPosition.CenterParent;
            seleccionarConcepto.ShowDialog();
        }

        #region Miembros de PropertyListener

        public void onPropertyChange(object sender, string name, object value)
        {
            Object[] infoConcepto = (Object[])value;
            if (name.Equals("seleccion_concepto"))
            {

                txtCodigoConcepto.Text = (String)infoConcepto[0];
                txtDescripcionConcepto.Text = (String)infoConcepto[1];
            }
        }

        #endregion

        public void añadirIIncidenciaListener(IIncidenciasListener pListener) 
        {
            this.incidenciasListeners.AddLast(pListener);
        }

        public void quitarIIncidenciaListener(IIncidenciasListener pListener) 
        {
            this.incidenciasListeners.Remove(pListener);
        }
    }
}
